/**
 * @param {number[][]} intervals
 * @return {number[][]}
 */
var merge = function(intervals) {
  const ans = []
  // 按照左区间升序
  intervals.sort((a, b) => a[0] - b[0])
  for(let i = 0; i < intervals.length; i++) {
    if(ans.length && intervals[i][0] > ans[ans.length - 1][1]) {
      ans.push(intervals[i])
    } else if(ans.length && intervals[i][0] <= ans[ans.length - 1][1]) {
      ans[ans.length - 1][1] = Math.max(ans[ans.length - 1][1], intervals[i][1])
    } else {
      ans.push(intervals[i])
    }
  }
  return ans
};